package com.xy.etl.ibatis.itf.impl;

import com.xy.etl.ibatis.itf.IXySQLFunction;
import com.xy.etl.ibatis.kit.XySQLSnowflake;

import java.util.Map;
import java.util.UUID;

/**
 * 核心工具类
 */
public class XySQLDefaultFunction implements IXySQLFunction {


    /**
     * 执行函数
     * @param parameter 参数值
     * @param funcName 函数名称
     * @param propertyMap 属性配置
     * @return 返回结果
     */
    public Object action(Object parameter, String funcName, Map<String, String> propertyMap) {
        if ("AUTO_INCREMENT".equalsIgnoreCase(funcName.trim())) {
            return XySQLSnowflake.getInstance().nextId();
        } else if ("UUID".equalsIgnoreCase(funcName.trim())) {
            return UUID.randomUUID();
        }
        return parameter;
    }
}
